/**
 * @author deming.su
 * @time 2022-12-20 10:00 AM
 * @description 实现路由管理
 */
import Vue from 'vue'
import Router from 'vue-router'

import Login from '../views/login'
import interceptor from './interceptor'
// 引入业务路由
import routes from './routes'

// 全局插件注册--那么页面才可以使用路由的全局组件(router-view、router-link、keep-alive)
Vue.use(Router)

const originalPush = Router.prototype.push
const originalReplace = Router.prototype.replace
// 针对 push 方法
Router.prototype.push = function push (location, onResolve, onReject) {
  if (onResolve || onReject) return originalPush.call(this, location, onResolve, onReject)
  return originalPush.call(this, location).catch(err => err)
}

const router = new Router({
    // 指定路由模式：mode
    mode: 'history',
    // 配置路由
    routes: [
        // 因为我们做的是后台管理系统，没有注册页面，并且进入系统前，一定要登录才行
        {path: '/', redirect: '/login'},
        {path: '/login', component: Login, meta: {nologin: true,layout:'NullLayout'}},
        ...routes
    ]
})

// 注入拦截器
router.beforeEach(interceptor)

export default router